v2.05 (2025-09-19)

* Fixed a crash that was caused by a new routine failing to handle out-of-range data

v2.04 (2025-08-29)

* Various clashing NRPN messages now fixed
* Surface and Keyscanner were driving some serial data in the wrong way. This was a 'no fault' error but signal integrity issues are better fixed when recognised
* !! Huge amounts of optimisation to the synth !!
* Organ and wavetable routines rethought for greater efficiency without impairing sound
* Wavetables page in memory contains wavetables and factory patches as before but now also the Organ wavetables, the OSCar wavetables, and the sine look-up
* More aggressive compiler optimisation deployed for greater code efficiency at runtime

v2.03 (2025-07-31)

* Improved sine approximation and aliasing performance of OSCar modes
* Added support for MIDI All Notes Off message

2.02 (2025-07-30)

* More bug fixes, and improvements to OSCar LFO and low-pass filtering

2.01 (2025-07-30)

* Work on interpolation and performance to keep Mantis within processing limits

1.35, 2.00 (2025-07-30)

* Bug fixes to do with the OSCar features, then renumbered version

1.34 (2025-07-18)

* Fixed OSCar filters that were adding artefacts to high notes
* Added delay-and-add shape control

1.33 (2025-07-18)

* Equalised OSCar levels

1.30, 1.31, 1.32 (2025-07-17)

* OSCar features complete

1.28, 1.29 (2025-04-30)

* Rotary switch bug fix
* Added OSCar oscillator and wavetables for Superbooth demo

1.27 (2025-04-20)

* Fixed some issues with firmware upgrades
* New and improved velocity curve

1.26 (2025-02-21)

* Smorgasbord features for M-30 development
* Improved response speed of rotary switches

v1.25 (2024-12-04)

* SysEx noise issue fixed. A buffer overflow lurking silently in the code until something set it off
* Patch A00 weird if left selected over a power cycle fixed. This was due to errors in the timing code moved in 1.24 that meant that the control panel was still stabilising after the first patch has loaded
* CC1 now affects the vibrato depth when the joystick is in the appropriate mode

v1.24 (2024-12-03)

* USB device driver was trying to write to a not-yet-initialised endpoint, so Mantis was permanently one message behind. Was somewhat masked by MIDI sync in most cases, but it did throw the timing off
* Bit of housekeeping: all the scheduled parts of initialisation now happen in the same place

v1.23 (2024-11-29)

* Repeated notes would sometimes be improperly allocated to different voices
* Env1 is working as a modulation source again: an array was mis-sized so it broke at some point
* Strategically clear USB queues at certain times to prevent buffer overruns while it's not configured

v1.22 (2024-11-22)

* Added a half-second pause in USB enumeration on startup as some systems might experience confusion
* SHIFT + Save now creates an undo point (if there isn't one already) in addition to sending a SysEx dump. This acts as a SNAPSHOT in patch building
* Lengthened 'anti-pop' timeout on reverb as it interacts a little with the USB enumeration

v1.21 (interim release)

* Filter width bug fixed: odd-numbered voices didn't work properly after 1.20
* Improved random function (Shift + Compare) by adding some parameter constraints
* Square wave PWM duty no longer quite hits zero and limits at about 0.1% duty which improves the overall effect
* Sub oscillator efficiency is slightly improved lowering CPU load

v1.20 (interim release)

* Max velocity bug fixed. Was occasionally outputting 128 which is out of range
* Filter envelopes and filter width now work properly in quad mode. This was a HUGE fix and improvement to quad mode

v1.19 (2024-10-22)

* Fixed #120 Reverb clang when switching on minimised
* Fixed #119 Save causes panel lock-up when in MIDI loopback or local off use with a DAW
* Fixed #121 Reverb distortion can get rather unpleasant under deep feedback conditions
* Fixed #123 LFO key trigger now works on Organ waves
* Fixed #126 Arp mode now handles incoming MIDI properly in mono mode
* Fixed #129 Improved robustness when in high CPU load situations
* Fixed #122 [regression] Random clicks unfortunately introduced have been tracked down and annihilated
* Fixed #127 USB descriptor reports version number
* Fixed #131 [regression] Tap tempo broken and fixed
* Fixed #124 DIN MIDI bug (unintentional limit of 500 messages/second) fixed
* USB driver completely overhauled / re-written and optimised for size and efficiency
* Whole codebase migrated to a more modern C compiler and build system
* Improvements made to voice management, especially in polyphonic modes
* Corrected the pitch of the detuned oscillator when it optimises under heavy load
* Fixed pop on patch change caused by the chorus buffer getting corrupted
* Onset clicks on some voices fixed: attack envelope overshoot/double trigger; inner envelope ramps not zeroed properly when the voice stops running
* Pulse width modulation slewing revisited so artefacts are improved
* Improved smoothing on PWM and digital VCAs (in quad modes) to avoid occasional 'squeaking' on sharp onsets

v1.14 (2024-06-28)

* Effects streamlined with proper bypass modes
* Detune-suppression optimisation extended to modes when reverb is off
* Detune-suppression optimisation improved by using correct average pitch
* Envelope triggering in non-legato modes fixed
* Envelope triggering and voice selection in polyphony modes fixed

v1.12 (2024-06-27)

* PWM outputs (VCA, filters) are now slewed at a multiple of the frame rate to mitigate squeaky aliasing noise on attack/release
* Cause of transient clicks #1 fixed: attack envelope overshoot leading to double trigger
* Cause of transient clicks #2 fixed (polyphonic modes only): inner envelope ramps are now updated properly with zero level when the voice stops running
* Sine shape (FM synthesis) slewed and tamed so it doesn't bang at all, or alias so much, when LFOs are applied

v1.11 (2024-06-11)

* Full USB-MIDI Sync implementation
* Mantis sends out MIDI clock when synchronising to internal clock
* Fixed occurrences of stuck notes when entering/leaving arpeggiator in various voice modes
* Fixed LFO re-triggering when in arpeggiator and sync modes
* Fixed zipper noise on mix controls
* Fixed zipper noise/clicks on inner envelopes in quad mode
* Fixed crash on synth start-up if switched to a preset using an organ waveform
* Fixed bug where where one could press 'Init', then 'Duo' and have the old patch's shape still sounding on the second voice
* Added CC 0x74 as an alternative for controlling filter frequency
* Fixed 8-bit CC data input for filter
* Fixed MIDI loop-of-doom when sending program change messages with a loopback
* Efficiency optimisations to pitch and wave shape calculations
* Overhauled key scanning so notes don't stick during drop tests or electrostatic discharge

v1.07 (2024-03-22)
